#include <iostream>
#include <vector>
#include <utility>

using namespace std;

struct X
{
    X() {cout << "constructor" << endl;}
    X(const X&) {cout << "copyconstructor" << endl;}
    X& operator= (const X &rhs) {cout << "=" << endl;return *this;}
    ~X() {cout << "deconstructor" << endl;}
};

int main()
{
    vector<X> vx;
    vx.push_back(std::move(X()));
    return 0;
}
